package persistencia.dao;

import org.hibernate.Query;
import persistencia.hbt.HibernateUtil;
import bean.EntidadPersistente;
import bean.Proveedor;

public class ProveedorDAO extends EntidadPersistenteDAO {
	private static ProveedorDAO instancia = null;
	
	public static ProveedorDAO getInstancia(){
		if(instancia == null)
			instancia = new ProveedorDAO();
		
		if (session == null)
			session = HibernateUtil.getSession();
		
		return instancia;
	}
	
	public Proveedor buscar(EntidadPersistente entidad)
	{
		Proveedor prov = (Proveedor) entidad;
		
		if (prov.getId() != null)
			return (Proveedor) super.buscar(prov);
		else if (prov.getCuit() != null)
			return this.buscar(prov.getCuit());
		
		return null;
	}
	
	private Proveedor buscar(String cuit){
		Query query = session.createQuery("from Proveedor p where p.cuit = :var");
		query.setString("var", cuit);
		Proveedor prov = (Proveedor) query.setFirstResult(0).setMaxResults(1).uniqueResult();

		return prov;
	}
}
